This application relates to an architecture for a computer system, and specifically, to an architecture that allows partitioning of electronic components on printed circuit boards (also called “cards”) of the computer system in such a way that any printed circuit board may be easily replaced without having to redesign or replace any other printed circuit board in the related system. In addition, the printed circuit boards and backplanes can be arranged in various appropriate configurations.
Conventional computer systems contain electronic components that are located on printed circuit boards (PCBs). PCBs are also called “cards,” “daughtercards,” or “motherboards.” Conventional computers contain the majority of their components on a main PCB called a “motherboard.” The motherboard usually contains at least a processor, memory, and a peripheral controller. The motherboard usually also contains various bus logic chips, buffers, bus protocol circuitry, and memory management chips.
Some conventional systems include additional PCBs in addition to the motherboard. These PCBs contain electronics used by the motherboard, where the electronics are of a type compatible with the motherboard. Such electronics may include controllers for add-on peripherals, video circuitry, sound circuitry, etc. Other conventional systems contain a memory subsystem in low-bandwidth pluggable modules (called single in-line memory modules or “SIMMs”) on one or more separate PCBs.
The electronic elements on a motherboard are connected to one another on the motherboard by one or more “busses” and by lines carrying various control signals. Busses transmit addresses, data, control signals, etc. between electronic components. A motherboard is connected to other PCBs by one or more “connectors.” Each connector has “pins,” some of which transmit signals that are passed between the motherboard and the other PCBs and some of which are connected to power or ground. Signal paths called “traces” connect the connectors on the PCBs, backplanes, and/or motherboards.
Conventional connectors that are used to connect PCBs cannot achieve a density much higher than eighty contacts per linear inch. This low density limits the number of pins that can be located on a connector and limits the possible width of busses connecting the motherboard to other PCBs. In addition, when a connector contains a relatively small number of pins, signals are often multiplexed on at least some of the pins. When two signals are multiplexed on a single pin, for example, the signals are transmitted at different times over the single pin.
Multiplexed signals add electronic overhead and slow the operational speed of the system. As an alternative to narrow busses and multiplexed signals, some conventional systems simply use very large connectors. Such a size increase causes timing problems. Similarly, undesirable effects such as noise, signal disturbances, propagation delay, and cross-talk increase along with connector size. Some connector pins must be used for power and ground signals. It is desirable to have a relationship of 2:1 or 3:1 between signal and power/ground. Yet, such a relationship is not possible within the limitations of conventional low density connectors. Thus, the pin-out limits and size of conventional connector technology places limitations on the types of electronic components that can be located on boards other than the motherboard.
Currently, it is becoming desirable for computer systems to be able to use whatever processor works best for a certain task to be performed. For example, a first type of processor might work best for graphics processing while a second type of processor might be the best choice to act as a network server. It is desirable to be able to have a system that can interchange various types of processors according to, e.g., the task to be performed by the computer system. It is also desirable when changing a processor used by the system to be able to use an operating system and associated application software that are optimal for the new processor.
Conventional computer systems usually include a processor on the motherboard. Some conventional systems often allow a user to substitute processors by unplugging a first type of processor chip from the motherboard and replacing it with a second type of processor chip. Such substitution, however, can only be performed between processor chips having identical bus sizes and similar architectures. Specifically, both processor chips must be compatible with the other electronics on the motherboard.
In conventional systems, the architecture of a computer system is dictated by a type of processor used in the computer system. Thus, for example, a processor chip on a motherboard cannot be upgraded to a processor chip having a different architecture. To use a processor having a different architecture, the other components on the motherboard must be redesigned to operate with the new processor. Similarly, a type of peripheral controller used in a system determines a type of peripheral bus used in the system and a type of peripheral cards accepted by the system. To use a new type of peripheral bus in a system, the motherboard must be redesigned to accept a corresponding new type of peripheral controller.
The evolution of the personal computer has been marked by significant increases in processor speed. Bus widths have continued to increase for every new generation of processor. It is now common to integrate memory management and peripheral support functions into “chip sets.” The introduction of a new processor or chip set has previously required that the computer's motherboard be redesigned to benefit fully from the increased functionality and bandwidth of the new processor. The high speeds and dense packages dictate that the processor, the chip set, and the bus that interconnects them be placed on a single motherboard. The use of a motherboard limits the extent to which an existing system can be upgraded when new technologies become available because a motherboard is designed to operate only with certain bus widths, memory management schemes, peripheral busses and expansion slots.
In general, therefore, it is desirable to make the components of a computer system as modular as possible. When most of the components of a computer system are located on a motherboard, the motherboard will necessarily be large. Manufacture of these large boards is more complex than manufacture of small boards and, therefore, large boards are more difficult and costly to manufacture. In general, the effects of the many small tolerances required by a large motherboard combine to cause manufacturing problems for large boards, resulting in a lower yield of usable boards during the manufacturing process. Large boards also must be thicker than small boards to avoid warpage and to facilitate routing of tracer.
In addition, the larger a board is, the more components are located on the board. Large boards are also more difficult and costly to repair than small boards because, for example, if a single component on a motherboard is faulty, the entire board must be removed from the computer for repair or replacement. As stated above, although it is desirable to have modular components in a computer system, the pin-out limits of conventional connectors make modularity impracticable.